/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sccpa;

import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

/**
 *
 * @author admin
 */
@Entity
@Table(name = "pessoas", catalog = "db_projeto_araca", schema = "")
@NamedQueries({
    @NamedQuery(name = "Pessoas.findAll", query = "SELECT p FROM Pessoas p"),
    @NamedQuery(name = "Pessoas.findByCodPessoa", query = "SELECT p FROM Pessoas p WHERE p.codPessoa = :codPessoa"),
    @NamedQuery(name = "Pessoas.findByPessoa", query = "SELECT p FROM Pessoas p WHERE p.pessoa = :pessoa"),
    @NamedQuery(name = "Pessoas.findByNis", query = "SELECT p FROM Pessoas p WHERE p.nis = :nis"),
    @NamedQuery(name = "Pessoas.findBySexo", query = "SELECT p FROM Pessoas p WHERE p.sexo = :sexo"),
    @NamedQuery(name = "Pessoas.findByEscolaridade", query = "SELECT p FROM Pessoas p WHERE p.escolaridade = :escolaridade"),
    @NamedQuery(name = "Pessoas.findByOcupacao", query = "SELECT p FROM Pessoas p WHERE p.ocupacao = :ocupacao"),
    @NamedQuery(name = "Pessoas.findByBeneficiado", query = "SELECT p FROM Pessoas p WHERE p.beneficiado = :beneficiado"),
    @NamedQuery(name = "Pessoas.findByTipoBeneficio", query = "SELECT p FROM Pessoas p WHERE p.tipoBeneficio = :tipoBeneficio"),
    @NamedQuery(name = "Pessoas.findByValorBeneficio", query = "SELECT p FROM Pessoas p WHERE p.valorBeneficio = :valorBeneficio"),
    @NamedQuery(name = "Pessoas.findByValorSalario", query = "SELECT p FROM Pessoas p WHERE p.valorSalario = :valorSalario"),
    @NamedQuery(name = "Pessoas.findByValorPensao", query = "SELECT p FROM Pessoas p WHERE p.valorPensao = :valorPensao"),
    @NamedQuery(name = "Pessoas.findByDataNascimento", query = "SELECT p FROM Pessoas p WHERE p.dataNascimento = :dataNascimento"),
    @NamedQuery(name = "Pessoas.findByEstadoCivil", query = "SELECT p FROM Pessoas p WHERE p.estadoCivil = :estadoCivil"),
    @NamedQuery(name = "Pessoas.findByNaturalidade", query = "SELECT p FROM Pessoas p WHERE p.naturalidade = :naturalidade"),
    @NamedQuery(name = "Pessoas.findByEmprego", query = "SELECT p FROM Pessoas p WHERE p.emprego = :emprego"),
    @NamedQuery(name = "Pessoas.findBySituacaoOcupacional", query = "SELECT p FROM Pessoas p WHERE p.situacaoOcupacional = :situacaoOcupacional"),
    @NamedQuery(name = "Pessoas.findByValorAponsentadoria", query = "SELECT p FROM Pessoas p WHERE p.valorAponsentadoria = :valorAponsentadoria"),
    @NamedQuery(name = "Pessoas.findByValorProgramaAssistencial", query = "SELECT p FROM Pessoas p WHERE p.valorProgramaAssistencial = :valorProgramaAssistencial"),
    @NamedQuery(name = "Pessoas.findByRg", query = "SELECT p FROM Pessoas p WHERE p.rg = :rg"),
    @NamedQuery(name = "Pessoas.findByDataExpedicao", query = "SELECT p FROM Pessoas p WHERE p.dataExpedicao = :dataExpedicao"),
    @NamedQuery(name = "Pessoas.findByCpf", query = "SELECT p FROM Pessoas p WHERE p.cpf = :cpf"),
    @NamedQuery(name = "Pessoas.findByCtps", query = "SELECT p FROM Pessoas p WHERE p.ctps = :ctps"),
    @NamedQuery(name = "Pessoas.findByTituloEleitor", query = "SELECT p FROM Pessoas p WHERE p.tituloEleitor = :tituloEleitor"),
    @NamedQuery(name = "Pessoas.findByEndereco", query = "SELECT p FROM Pessoas p WHERE p.endereco = :endereco"),
    @NamedQuery(name = "Pessoas.findByBairro", query = "SELECT p FROM Pessoas p WHERE p.bairro = :bairro"),
    @NamedQuery(name = "Pessoas.findByCidade", query = "SELECT p FROM Pessoas p WHERE p.cidade = :cidade"),
    @NamedQuery(name = "Pessoas.findByEstado", query = "SELECT p FROM Pessoas p WHERE p.estado = :estado"),
    @NamedQuery(name = "Pessoas.findByReferenciaEndereco", query = "SELECT p FROM Pessoas p WHERE p.referenciaEndereco = :referenciaEndereco"),
    @NamedQuery(name = "Pessoas.findByTelefone", query = "SELECT p FROM Pessoas p WHERE p.telefone = :telefone"),
    @NamedQuery(name = "Pessoas.findByCor", query = "SELECT p FROM Pessoas p WHERE p.cor = :cor")})
public class Pessoas implements Serializable {
    @Transient
    private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "COD_PESSOA")
    private Integer codPessoa;
    @Basic(optional = false)
    @Column(name = "PESSOA")
    private String pessoa;
    @Column(name = "NIS")
    private String nis;
    @Basic(optional = false)
    @Column(name = "SEXO")
    private String sexo;
    @Basic(optional = false)
    @Column(name = "ESCOLARIDADE")
    private String escolaridade;
    @Column(name = "OCUPACAO")
    private String ocupacao;
    @Basic(optional = false)
    @Column(name = "BENEFICIADO")
    private String beneficiado;
    @Column(name = "TIPO_BENEFICIO")
    private String tipoBeneficio;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Column(name = "VALOR_BENEFICIO")
    private Float valorBeneficio;
    @Column(name = "VALOR_SALARIO")
    private Float valorSalario;
    @Column(name = "VALOR_PENSAO")
    private Float valorPensao;
    @Column(name = "DATA_NASCIMENTO")
    @Temporal(TemporalType.DATE)
    private Date dataNascimento;
    @Column(name = "ESTADO_CIVIL")
    private String estadoCivil;
    @Column(name = "NATURALIDADE")
    private String naturalidade;
    @Column(name = "EMPREGO")
    private String emprego;
    @Basic(optional = false)
    @Column(name = "SITUACAO_OCUPACIONAL")
    private String situacaoOcupacional;
    @Column(name = "VALOR_APONSENTADORIA")
    private Float valorAponsentadoria;
    @Column(name = "VALOR_PROGRAMA_ASSISTENCIAL")
    private Float valorProgramaAssistencial;
    @Column(name = "RG")
    private String rg;
    @Column(name = "DATA_EXPEDICAO")
    @Temporal(TemporalType.DATE)
    private Date dataExpedicao;
    @Column(name = "CPF")
    private String cpf;
    @Column(name = "CTPS")
    private String ctps;
    @Column(name = "TITULO_ELEITOR")
    private String tituloEleitor;
    @Column(name = "ENDERECO")
    private String endereco;
    @Column(name = "BAIRRO")
    private String bairro;
    @Column(name = "CIDADE")
    private String cidade;
    @Column(name = "ESTADO")
    private String estado;
    @Column(name = "REFERENCIA_ENDERECO")
    private String referenciaEndereco;
    @Column(name = "TELEFONE")
    private String telefone;
    @Basic(optional = false)
    @Column(name = "COR")
    private String cor;
    @OneToMany(mappedBy = "codResponsavel")
    private List<Alunos> alunosList;
    @OneToMany(mappedBy = "codPai")
    private List<Alunos> alunosmList;
    @OneToMany(mappedBy = "codMae")
    private List<Alunos> alunomaList;
    @OneToMany(mappedBy = "codPessoa")
    private List<ComposicaoFamiliar> compList;
    @OneToMany(mappedBy = "codResponsavel")
    private List<Projetos> projetosresponList;

    public Pessoas() {
    }

    public Pessoas(Integer codPessoa) {
        this.codPessoa = codPessoa;
    }

    public Pessoas(Integer codPessoa, String pessoa, String sexo, String escolaridade, String beneficiado, String situacaoOcupacional, String cor) {
        this.codPessoa = codPessoa;
        this.pessoa = pessoa;
        this.sexo = sexo;
        this.escolaridade = escolaridade;
        this.beneficiado = beneficiado;
        this.situacaoOcupacional = situacaoOcupacional;
        this.cor = cor;
    }

    public Integer getCodPessoa() {
        return codPessoa;
    }

    public void setCodPessoa(Integer codPessoa) {
        Integer oldCodPessoa = this.codPessoa;
        this.codPessoa = codPessoa;
        changeSupport.firePropertyChange("codPessoa", oldCodPessoa, codPessoa);
    }

    public String getPessoa() {
        return pessoa;
    }

    public void setPessoa(String pessoa) {
        String oldPessoa = this.pessoa;
        this.pessoa = pessoa;
        changeSupport.firePropertyChange("pessoa", oldPessoa, pessoa);
    }

    public String getNis() {
        return nis;
    }

    public void setNis(String nis) {
        String oldNis = this.nis;
        this.nis = nis;
        changeSupport.firePropertyChange("nis", oldNis, nis);
    }

    public String getSexo() {
        return sexo;
    }

    public void setSexo(String sexo) {
        String oldSexo = this.sexo;
        this.sexo = sexo;
        changeSupport.firePropertyChange("sexo", oldSexo, sexo);
    }

    public String getEscolaridade() {
        return escolaridade;
    }

    public void setEscolaridade(String escolaridade) {
        String oldEscolaridade = this.escolaridade;
        this.escolaridade = escolaridade;
        changeSupport.firePropertyChange("escolaridade", oldEscolaridade, escolaridade);
    }

    public String getOcupacao() {
        return ocupacao;
    }

    public void setOcupacao(String ocupacao) {
        String oldOcupacao = this.ocupacao;
        this.ocupacao = ocupacao;
        changeSupport.firePropertyChange("ocupacao", oldOcupacao, ocupacao);
    }

    public String getBeneficiado() {
        return beneficiado;
    }

    public void setBeneficiado(String beneficiado) {
        String oldBeneficiado = this.beneficiado;
        this.beneficiado = beneficiado;
        changeSupport.firePropertyChange("beneficiado", oldBeneficiado, beneficiado);
    }

    public String getTipoBeneficio() {
        return tipoBeneficio;
    }

    public void setTipoBeneficio(String tipoBeneficio) {
        String oldTipoBeneficio = this.tipoBeneficio;
        this.tipoBeneficio = tipoBeneficio;
        changeSupport.firePropertyChange("tipoBeneficio", oldTipoBeneficio, tipoBeneficio);
    }

    public Float getValorBeneficio() {
        return valorBeneficio;
    }

    public void setValorBeneficio(Float valorBeneficio) {
        Float oldValorBeneficio = this.valorBeneficio;
        this.valorBeneficio = valorBeneficio;
        changeSupport.firePropertyChange("valorBeneficio", oldValorBeneficio, valorBeneficio);
    }

    public Float getValorSalario() {
        return valorSalario;
    }

    public void setValorSalario(Float valorSalario) {
        Float oldValorSalario = this.valorSalario;
        this.valorSalario = valorSalario;
        changeSupport.firePropertyChange("valorSalario", oldValorSalario, valorSalario);
    }

    public Float getValorPensao() {
        return valorPensao;
    }

    public void setValorPensao(Float valorPensao) {
        Float oldValorPensao = this.valorPensao;
        this.valorPensao = valorPensao;
        changeSupport.firePropertyChange("valorPensao", oldValorPensao, valorPensao);
    }

    public Date getDataNascimento() {
        return dataNascimento;
    }

    public void setDataNascimento(Date dataNascimento) {
        Date oldDataNascimento = this.dataNascimento;
        this.dataNascimento = dataNascimento;
        changeSupport.firePropertyChange("dataNascimento", oldDataNascimento, dataNascimento);
    }

    public String getEstadoCivil() {
        return estadoCivil;
    }

    public void setEstadoCivil(String estadoCivil) {
        String oldEstadoCivil = this.estadoCivil;
        this.estadoCivil = estadoCivil;
        changeSupport.firePropertyChange("estadoCivil", oldEstadoCivil, estadoCivil);
    }

    public String getNaturalidade() {
        return naturalidade;
    }

    public void setNaturalidade(String naturalidade) {
        String oldNaturalidade = this.naturalidade;
        this.naturalidade = naturalidade;
        changeSupport.firePropertyChange("naturalidade", oldNaturalidade, naturalidade);
    }

    public String getEmprego() {
        return emprego;
    }

    public void setEmprego(String emprego) {
        String oldEmprego = this.emprego;
        this.emprego = emprego;
        changeSupport.firePropertyChange("emprego", oldEmprego, emprego);
    }

    public String getSituacaoOcupacional() {
        return situacaoOcupacional;
    }

    public void setSituacaoOcupacional(String situacaoOcupacional) {
        String oldSituacaoOcupacional = this.situacaoOcupacional;
        this.situacaoOcupacional = situacaoOcupacional;
        changeSupport.firePropertyChange("situacaoOcupacional", oldSituacaoOcupacional, situacaoOcupacional);
    }

    public Float getValorAponsentadoria() {
        return valorAponsentadoria;
    }

    public void setValorAponsentadoria(Float valorAponsentadoria) {
        Float oldValorAponsentadoria = this.valorAponsentadoria;
        this.valorAponsentadoria = valorAponsentadoria;
        changeSupport.firePropertyChange("valorAponsentadoria", oldValorAponsentadoria, valorAponsentadoria);
    }

    public Float getValorProgramaAssistencial() {
        return valorProgramaAssistencial;
    }

    public void setValorProgramaAssistencial(Float valorProgramaAssistencial) {
        Float oldValorProgramaAssistencial = this.valorProgramaAssistencial;
        this.valorProgramaAssistencial = valorProgramaAssistencial;
        changeSupport.firePropertyChange("valorProgramaAssistencial", oldValorProgramaAssistencial, valorProgramaAssistencial);
    }

    public String getRg() {
        return rg;
    }

    public void setRg(String rg) {
        String oldRg = this.rg;
        this.rg = rg;
        changeSupport.firePropertyChange("rg", oldRg, rg);
    }

    public Date getDataExpedicao() {
        return dataExpedicao;
    }

    public void setDataExpedicao(Date dataExpedicao) {
        Date oldDataExpedicao = this.dataExpedicao;
        this.dataExpedicao = dataExpedicao;
        changeSupport.firePropertyChange("dataExpedicao", oldDataExpedicao, dataExpedicao);
    }

    public String getCpf() {
        return cpf;
    }

    public void setCpf(String cpf) {
        String oldCpf = this.cpf;
        this.cpf = cpf;
        changeSupport.firePropertyChange("cpf", oldCpf, cpf);
    }

    public String getCtps() {
        return ctps;
    }

    public void setCtps(String ctps) {
        String oldCtps = this.ctps;
        this.ctps = ctps;
        changeSupport.firePropertyChange("ctps", oldCtps, ctps);
    }

    public String getTituloEleitor() {
        return tituloEleitor;
    }

    public void setTituloEleitor(String tituloEleitor) {
        String oldTituloEleitor = this.tituloEleitor;
        this.tituloEleitor = tituloEleitor;
        changeSupport.firePropertyChange("tituloEleitor", oldTituloEleitor, tituloEleitor);
    }

    public String getEndereco() {
        return endereco;
    }

    public void setEndereco(String endereco) {
        String oldEndereco = this.endereco;
        this.endereco = endereco;
        changeSupport.firePropertyChange("endereco", oldEndereco, endereco);
    }

    public String getBairro() {
        return bairro;
    }

    public void setBairro(String bairro) {
        String oldBairro = this.bairro;
        this.bairro = bairro;
        changeSupport.firePropertyChange("bairro", oldBairro, bairro);
    }

    public String getCidade() {
        return cidade;
    }

    public void setCidade(String cidade) {
        String oldCidade = this.cidade;
        this.cidade = cidade;
        changeSupport.firePropertyChange("cidade", oldCidade, cidade);
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        String oldEstado = this.estado;
        this.estado = estado;
        changeSupport.firePropertyChange("estado", oldEstado, estado);
    }

    public String getReferenciaEndereco() {
        return referenciaEndereco;
    }

    public void setReferenciaEndereco(String referenciaEndereco) {
        String oldReferenciaEndereco = this.referenciaEndereco;
        this.referenciaEndereco = referenciaEndereco;
        changeSupport.firePropertyChange("referenciaEndereco", oldReferenciaEndereco, referenciaEndereco);
    }

    public String getTelefone() {
        return telefone;
    }

    public void setTelefone(String telefone) {
        String oldTelefone = this.telefone;
        this.telefone = telefone;
        changeSupport.firePropertyChange("telefone", oldTelefone, telefone);
    }

    public String getCor() {
        return cor;
    }

    public void setCor(String cor) {
        String oldCor = this.cor;
        this.cor = cor;
        changeSupport.firePropertyChange("cor", oldCor, cor);
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (codPessoa != null ? codPessoa.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Pessoas)) {
            return false;
        }
        Pessoas other = (Pessoas) object;
        if ((this.codPessoa == null && other.codPessoa != null) || (this.codPessoa != null && !this.codPessoa.equals(other.codPessoa))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "sccpa.Pessoas[ codPessoa=" + codPessoa + " ]";
    }

    public void addPropertyChangeListener(PropertyChangeListener listener) {
        changeSupport.addPropertyChangeListener(listener);
    }

    public void removePropertyChangeListener(PropertyChangeListener listener) {
        changeSupport.removePropertyChangeListener(listener);
    }
    
}
